1000 REM *** ULTRABOOT MAKER 1010 POKE 53280,6:POKE 53281,6 1020 POKE 55,0:POKE 56,37:CLR 1030 DIM M%(5,20),MF%(9),ME%(9):MF%(0)=999 1040 PRINT "[147] [154] *** [213]LTRABOOT [205]AKER ***" 1050 PRINT "* (C) 1992 [205]ARTIN [208]FOST" 1060 PRINT " *** MAXIMALE [198]ILELAENGE : 104 [194]LOECKE" 1070 PRINT:PRINT "[213]LTRABOOT [205]AKER ERSTELLT AUF [196]ISKETTE" 1080 PRINT "EIN [213]-[198]ILE, WAS SEHR SCHNELL EIN BE -" 1090 PRINT "STIMMTES [208]ROGRAMM LAEDT ." 1100 PRINT 1110 REM *** FILE LADEN 1120 PRINT " *** [208]ROGRAMM LADEN" 1130 INPUT "==> [208]ROGRAMMNAME = ";N$ 1140 PRINT "==> [196]ISKETTE MIT '";N$;"' EINLEGEN !" 1150 GET A$:IF A$="" THEN 1150 1160 OPEN 1,8,15,"I":GOSUB 2610 1170 OPEN 2,8,0,N$:GOSUB 2610 1180 PRINT " '";N$;"' WIRD GELESEN ." 1190 GET#2,A$,A$ 1200 FOR I=53120 TO 53212 1210 READ D:C=C+D:POKE I,D 1220 NEXT I 1230 IF C-12129 THEN PRINT "??? [196]ATA-[198]EHLER !":GOTO 2550 1240 SYS 53120 1250 EA=PEEK(174)+256*PEEK(175)+1 1260 BL=INT((EA-9474)/254)+1 1270 PRINT " [194]LOECKE : ";BL 1280 PRINT " [194]YTES :";EA-9473 1290 IF BL>104 THEN PRINT "??? [198]ILE ZU LANG !":GOTO 2550 1300 CLOSE 2 1301 OPEN 2,8,2,N$+"+":I=0 1302 INPUT#1,E:IF E THEN 1309 1303 PRINT " *** [213]LTRABOOT [205]ENUE-[198]ILE !" 1304 INPUT#2,MF%(I),ME%(I):I=I+1 1305 IF ST=0 THEN 1304 1309 CLOSE 2 1310 PRINT "==> [196]ISKETTE, DIE [213]LTRABOOT ERHALTEN" 1320 PRINT " SOLL, EINLEGEN !" 1330 GET A$:IF A$="" THEN 1330 1340 OPEN 2,8,2,"#1":GOSUB 2610 1350 REM *** FORMATIEREN 1360 PRINT " *** [198]ORMATIERUNG" 1370 GOSUB 2760 1380 T=36:I=0 1390 DE=0:GS=17:SD=5 1400 IF BL>84 THEN DE=32:GS=18:SD=5 1410 IF BL>89 THEN DE=64:GS=19:SD=5 1420 IF BL>94 THEN DE=96:GS=21:SD=6 1430 PRINT#2,CHR$(DE)+CHR$(GS); 1440 PRINT " [211]EKTOREN PRO [212]RACK :";GS 1450 PRINT#1,"M-E"+CHR$(23)+CHR$(4)+CHR$(T); 1460 PRINT " [212]RACK";T;"WIRD FORMATIERT .[145]" 1470 GOSUB 2610 1480 I=I+GS:IF I>BL THEN 1500 1490 T=T+1:GOTO 1450 1500 PRINT " [198]ORMATIERUNG ABGESCHLOSSEN ." 1510 PRINT " *** [197]INTRAG IM [196]IRECTORY" 1520 PRINT " [197]IN FREIER [208]LATZ IM [196]IRECTORY WIRD" 1530 PRINT " GESUCHT ." 1540 REM *** FREIE BLOECKE FINDEN 1550 PRINT#1,"U1 2 0 18 0":GOSUB 2610 1560 PRINT#1,"B-P 2 73" 1570 GET#2,A$:IF A$="" THEN A$=CHR$(0) 1580 I=0 1590 IF (ASC(A$) AND 2^I) = 0 THEN M%(0,S)=1 1600 S=S+1:IF S>18 THEN 1640 1610 I=I+1: IF I<8 THEN 1590 1620 GOTO 1570 1630 REM *** FREIEN EINTRAG FINDEN 1640 S=1 1650 PRINT#1,"U1 2 0 18";S:GOSUB 2610 1660 I=2 1670 PRINT#1,"B-P 2";I 1680 GET#2,A$:IF A$="" THEN 1730 1690 I=I+32:IF I<227 THEN 1670 1700 PRINT#1,"B-P 2 1" 1710 GET#2,A$:IF A$<>CHR$(255) THEN S=ASC(A$):GOTO 1650 1720 NS=S+3:I=0:GOSUB 2670 1730 ND=NS:NS=18:GOSUB 2670 1740 PRINT#1,"B-A:0 18";NS 1750 IF I THEN 1870 1760 REM *** NEUER DIR-BLOCK 1770 PRINT#1,"B-A:0 18";ND 1780 PRINT#1,"B-P 2 0" 1790 PRINT#2,CHR$(18)+CHR$(ND); 1800 PRINT#1,"U2 2 0 18";S:GOSUB 2610 1810 FOR I=0 TO 254 1820 PRINT#2,CHR$(0); 1830 NEXT I 1840 PRINT#2,CHR$(255); 1850 I=2:S=ND 1860 REM *** FILE EINTRAGEN 1870 PRINT#1,"B-P 2";I 1880 PRINT#2,CHR$(130); 1890 PRINT#2,CHR$(18)+CHR$(NS); 1900 PRINT#2,"U"+CHR$(160); 1910 PRINT#2,LEFT$(N$+" ",14); 1920 FOR J=19 TO 29 1930 PRINT#2,CHR$(0); 1940 NEXT J 1950 PRINT#1,"U2 2 0 18";S:GOSUB 2610 1960 PRINT " [196]AS [213]-[198]ILE IST EINGETRAGEN IN :" 1970 PRINT " [212]RACK : 18" 1980 PRINT " [211]EKTOR :";S 1990 PRINT " [197]INTRAG :";INT(I/32)+1 2000 REM *** U-FILE SCHREIBEN 2010 PRINT " *** [213]-[198]ILE SCHREIBEN" 2020 GOSUB 2760 2030 PRINT#2,CHR$(DE)+CHR$(GS); 2040 CLOSE 2 2050 OPEN 2,8,2,"#0":GOSUB 2610 2060 GOSUB 2760 2070 PRINT#1,"B-P 2 207":PRINT#2,CHR$(DE); 2080 PRINT " [196]AS [213]-[198]ILE UND [194]OOTPROGRAMM WIRD" 2090 PRINT " GESCHRIEBEN IN :" 2100 PRINT " [212]RACK : 18" 2110 PRINT " [211]EKTOR :";NS 2120 PRINT#1,"U2 2 0 18";NS:GOSUB 2610 2130 PRINT " [202]ETZT WIRD DAS [196]ISKETTENBOOTPROGRAMM" 2140 PRINT " UND '";N$;"' GESCHRIEBEN ." 2150 REM *** BLOCK 36/0 SCHREIBEN 2160 GOSUB 2760 2170 PRINT#1,"B-P 2 10" 2180 PRINT#2,CHR$(DE); 2190 T=36:S=0:I=0:M%(1,0)=1 2200 POKE 174,1:POKE 175,37 2210 PRINT#1,"B-P 2 254" 2215 BZ=0 2220 GOTO 2400 2230 REM *** PROGRAMM SCHREIBEN 2240 PRINT#1,"B-P 2 0" 2250 SYS 53175 2260 AD=PEEK(174)+256*PEEK(175) 2270 IF AD=GS THEN NS=NS-GS 2420 IF M%(NT-35,NS)=0 THEN 2450 2430 C=C-1:IF C>0 THEN 2410 2440 NT=NT+1:GOTO 2420 2450 M%(NT-35,NS)=1 2460 REM *** BLOCK SCHREIBEN 2461 I=0 2462 IF MF%(I)>BZ THEN 2470 2463 IF MF%(I)=BZ THEN A=ME%(I):GOTO 2290 2464 I=I+1:GOTO 2462 2470 PRINT#2,CHR$(NS)+CHR$(NT); 2480 PRINT#1,"M-E"+CHR$(36)+CHR$(4)+CHR$(T)+CHR$(S); 2490 PRINT " [212]RACK :";T;" [211]EKTOR :";S;"[157] [145]" 2500 GOSUB 2610 2510 T=NT:S=NS 2515 BZ=BZ+1 2520 IF AD18 THEN NS=NS-18 2690 IF M%(0,NS)=0 THEN 2730 2700 NS=NS+1:C=C-1:IF C THEN 2680 2710 PRINT "??? [203]EIN [194]LOCK MEHR FREI !" 2720 GOTO 2550 2730 M%(0,NS)=1 2740 RETURN 2750 REM *** DATEN LESEN 2760 C=0:PRINT#1,"B-P 2 0" 2770 READ D:IF D>-1 THEN C=C+D:PRINT#2,CHR$(D);:GOTO 2770 2780 IF D+C=0 THEN RETURN 2790 PRINT "??? [196]ATA-[198]EHLER !" 2800 PRINT " FALSCHE [208]RUEFSUMME :";D 2810 GOTO 2550 2820 : 2830 REM *** LOADSAVEROUTINEN 2840 DATA 162,2,32,198,255,160,0,132,174,169,37,133,175,32,207,255,133,4,169,0 2850 DATA 162,7,70,4,176,3,29,175,207,202,16,246,230,174,208,2,230,175,145,174 2860 DATA 165,144,240,225,76,204,255,1,4,2,8,16,64,32,128,169,54,133,1,162,2,32 2870 DATA 201,255,160,0,177,174,32,210,255,200,192,254,144,246,165,174,105,253 2880 DATA 133,174,144,2,230,175,169,55,133,1,76,204,255 2890 REM *** FORMATIERROUTINE 2900 DATA 165,8,133,81,173,65,4,133,67,173,0,28,41,159,13,64,4,141,0,28,76,0 2910 DATA 251,32,0,193,162,1,169,10,141,32,6,169,160,141,33,6,169,15,141,34,6 2920 DATA 172,5,2,132,8,169,224,133,1,165,1,48,252,201,2,176,1,96,76,10,230 2930 DATA -5531 2940 REM *** WRITEROUTINE 2950 DATA 169,3,133,49,173,0,28,41,159,13,61,4,141,0,28,173,62,4,133,67,165,1 2960 DATA 41,2,208,3,76,152,246,169,208,133,1,76,117,245,32,24,193,173,5,2,133 2970 DATA 8,173,6,2,133,9,169,226,162,1,134,249,32,125,213,76,153,213,-5930 2980 REM *** U-FILE TRACK 18 2990 DATA 0,196,36,3,52,3,202,241,237,246,62,241,47,243,102,254,165,244,237,245 3000 DATA 169,8,162,226,32,177,255,169,111,32,147,255,189,229,2,32,168,255,232 3010 DATA 208,247,32,174,255,173,17,208,41,239,141,17,208,120,169,32,141,0,221 3020 DATA 169,1,133,45,169,8,133,46,160,0,169,0,141,0,221,44,0,221,48,251,162 3030 DATA 32,234,44,0,221,48,2,38,255,173,0,221,74,74,13,0,221,74,74,13,0,221 3040 DATA 74,74,13,0,221,142,0,221,145,45,200,208,210,201,255,240,12,165,45,105 3050 DATA 254,133,45,144,198,230,46,208,194,160,254,177,45,101,45,133,45,144,2 3060 DATA 230,46,169,199,141,0,221,173,17,208,9,16,141,17,208,88,32,21,253,169 3070 DATA 0,32,113,168,76,174,167,77,45,69,5,2,238,13,2,238,20,2,174,73,2,224 3080 DATA 44,208,243,189,197,2,157,0,4,202,16,247,76,17,4,169,3,133,49,173,0,28 3090 DATA 41,159,9,0,141,0,28,76,209,244,169,36,133,8,74,141,5,28,162,0,134,9 3100 DATA 232,134,249,169,224,32,125,213,32,153,213,76,17,3,-27947 3110 REM *** LESEROUTINE 36/0 3120 DATA 169,4,133,49,173,0,28,41,159,9,0,141,0,28,76,209,244,169,8,133,8,141 3130 DATA 0,24,172,255,3,173,254,3,132,6,133,7,169,224,162,0,134,249,32,125,213 3140 DATA 32,24,193,32,153,213,120,160,0,173,0,24,74,176,250,185,0,4,162,10,142 3150 DATA 0,24,74,74,74,74,166,8,142,0,24,141,0,24,10,41,15,141,0,24,185,0,4,41 3160 DATA 15,141,0,24,10,41,15,141,0,24,234,169,8,141,0,24,200,208,201,173,254 3170 DATA 4,172,255,4,208,171,169,18,133,6,169,176,88,133,0,165,0,48,252,76,231 3180 DATA 235,-12541 3190 REM *** ENDE